package edu.continental.dao;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;

import edu.continental.bean.TipoDocumento;
import edu.continental.bean.Ubigeo;
import edu.continental.util.Conexion;

public class UtilDAO {

	public List<TipoDocumento> listaTiposDocumentos() {
		
		Conexion conexion=new Conexion();
		Connection con=conexion.getConnection();
		Statement st = null;
		ResultSet rs = null;
		List<TipoDocumento> listaTipoDocs = new ArrayList<TipoDocumento>();
		
		String sql = "select id, nombre from tipoDoc";
		
		try {
			st = con.createStatement();
			
			rs = st.executeQuery(sql);
			
			while ( rs.next() ) {
				//Capturamos los valores de la BD
				int id = rs.getInt(1);
				String nombre = rs.getString(2).toUpperCase();
				
				//Instanciando el objeto
				TipoDocumento obj = new TipoDocumento();
				obj.setId(id);
				obj.setNombre(nombre);
				
				//Agregamos a la lista
				listaTipoDocs.add(obj);
				
			}
		
		} catch ( Exception ex ) {
			ex.printStackTrace();
			System.out.println("ERROR: " + ex.getMessage());
		}
		
		return listaTipoDocs;
		
	}
	
	public List<Ubigeo> listaPaises() {
		
		Conexion conexion=new Conexion();
		Connection con=conexion.getConnection();
		Statement st = null;
		ResultSet rs = null;
		List<Ubigeo> listaPaises = new ArrayList<Ubigeo>();
		
		String sql = "select id, nombre from pais";
		
		try {
			st = con.createStatement();
			
			rs = st.executeQuery(sql);
			
			while ( rs.next() ) {
				//Capturamos los valores de la BD
				String id = rs.getString(1);
				String nombre = rs.getString(2).toUpperCase();
				
				//Instanciando el objeto
				Ubigeo obj = new Ubigeo();
				obj.setId(id);
				obj.setNombre(nombre);
				
				//Agregamos a la lista
				listaPaises.add(obj);
				
			}
		
		} catch ( Exception ex ) {
			ex.printStackTrace();
			System.out.println("ERROR: " + ex.getMessage());
		}
		
		return listaPaises;
		
	}
	
	
	public List<Ubigeo> listaDepartamentoXPais(String idPais) {
		
		Conexion conexion=new Conexion();
		Connection con=conexion.getConnection();
		Statement st = null;
		ResultSet rs = null;
		List<Ubigeo> listaDepartamentos = new ArrayList<Ubigeo>();
		
		String sql = "select id, nombre from localidad where id_pais = " + idPais;
		
		try {
			st = con.createStatement();
			
			rs = st.executeQuery(sql);
			
			while ( rs.next() ) {
				//Capturamos los valores de la BD
				String id = rs.getString(1);
				String nombre = rs.getString(2);
				
				//Instanciando el objeto
				Ubigeo obj = new Ubigeo();
				obj.setId(id);
				obj.setNombre(nombre);
				
				//Agregamos a la lista
				listaDepartamentos.add(obj);
				
			}
		
		} catch ( Exception ex ) {
			ex.printStackTrace();
			System.out.println("ERROR: " + ex.getMessage());
		}
		
		return listaDepartamentos;
		
	}
	
	
	public List<Ubigeo> listaProvinciaXDepartamento(String idDepartamento) {
		
		Conexion conexion=new Conexion();
		Connection con=conexion.getConnection();
		Statement st = null;
		ResultSet rs = null;
		List<Ubigeo> listaProvincias = new ArrayList<Ubigeo>();
		
		String sql = "select id, nombre from provincia where id_localidad = " + idDepartamento;
		
		try {
			st = con.createStatement();
			
			rs = st.executeQuery(sql);
			
			while ( rs.next() ) {
				//Capturamos los valores de la BD
				String id = rs.getString(1);
				String nombre = rs.getString(2);
				
				//Instanciando el objeto
				Ubigeo obj = new Ubigeo();
				obj.setId(id);
				obj.setNombre(nombre);
				
				//Agregamos a la lista
				listaProvincias.add(obj);
				
			}
		
		} catch ( Exception ex ) {
			ex.printStackTrace();
			System.out.println("ERROR: " + ex.getMessage());
		}
		
		return listaProvincias;
		
	}
	
}
